To test the capabilities and limitations of current SoCs, prototyping is a widely used technique. SoCs include complex circuitry (hardware) and control firmware, and prototyping techniques have been developed to verify hardware and software behavior and detect bugs, loopholes and other error conditions in the firmware, under different stimulus and conditions, to test the performance of a SoC design, e.g., a design under test (DUT). For large SoCs including multiple repetitions of smaller portions of circuitry, some emulators may require multiple circuits operating in parallel, thus increasing computational cost, packaging and complexity of the SoC verification process. Prototyping tools using field-programmable gate arrays (FPGAs) may be better suited for these repetitive tasks. However, many prototyping tools sacrifice debug infrastructure and capabilities to achieve higher performance than that of a typical emulator.
The description provided in the background section should not be assumed to be prior art merely because it is mentioned in or associated with the background section. The background section may include information that describes one or more aspects of the subject technology.